There are several problems associated with a conventional “technology-centric” approach to developing Enterprise applications. These problems include a certain lack of flexibility in the final system and real or perceived non-conformance to user and business needs. An example of previous work done in providing a system that is responsive to business processes is described in U.S. Pat. No. 6,073,109, issued Jun. 6, 2000 for a Computerized method and system for managing business processes using linked workflows.
Two of the principal advantages of current invention are that it is based on a “user-centric” approach to creating an information system, and that it can be implemented incrementally.
To be of value in the decision process, an information system must be easy to implement and adaptable to emerging technologies and changing business needs. Its successful implementation incorporates knowledge of the roles of the individuals and the workflow within the enterprise. Additionally, it is necessary to implement such an information system incrementally, allowing at all times for different parts of the enterprise to be at different levels of operational and technological maturity or obsolescence.
The basic theories of distributed systems incorporate four abstract operating perspectives. These are perspectives of Business Management, Application Developer, Service Provider and User. Although this model represents the users' perspective, it implicitly assumes that the information system belongs to the one enterprise and the users' perspective is in the context of their relation to that enterprise. We feel, however that user centric information systems must reflect the dimensionalities of the users' universe beyond those mandated by their employers. By using the example of professional practitioners in regulated industries, we were able to include a quantifiable attribute of a professional's universe that transcends the consideration of a single enterprise.
Need for a User Centric Information System
A fundamental premise of the invention is that “the user is the primary focus of the information system”. To understand why this approach may be unique now we can reflect on the evolution of information systems.
Focus on Building Better Computers
There is hardly anything that we do with computers that does not find its way back to A. M. Turing. It is possible that the reason for this strong affinity is Turing's unmistakable genius. It is also possible that we are trapped by the clarity of Turing's ideas. Turing's landmark paper [1] poses a simple question “Can machines think?” This seemingly innocent question locked the focus of information systems on technology for the last 50 years.
When we think of the people who have contributed to the development of information systems we think of physicists, mathematicians and engineers, not coincidentally, individuals with the same love for the abstract as Turing. It is interesting to think of what may have happened if Turing had stated a different question. Who would have been the designers of information systems today if Turing had asked, “Can people use these machines to an advantage?” Or simply “are computers really worth all the trouble?”
It was inevitable that once people outside of the closed circle of scientists and engineers started using the computers, people would find a way to make them more useful. The interesting question is what took so long? We can spend a few minutes and ponder how would we have thought about information systems if humanity had approached the information revolution with a bias toward “the domain of the problem” rather than “the domain of the solution”[2].
Information System is a Commitment not a Project
This is not idle curiosity. The fundamental technology of information systems, i.e. software, has consistently resisted economies of scale. One reason for this may be that up to now, in an information system the only acceptable specification can be presented in the language of implementation.
In other words we have a language for specifying other major undertakings such as highways or buildings, that allows us to think of them in terms of what is needed but in information system we only think in terms of what is possible or what is “cool”. That is, a “technology-centric” model for an information system.
As the information revolution progresses and non-programmers begin to rely on information systems, the information industry has no choice but to assume a broader perspective. Specifically, we are beginning to realize the extent to which an information system in each phase of its lifecycle, be it specification, development, or deployment, is an organizational commitment (a process), and not an individual or departmental task (not a project).
The Individual and the Collective
At the very core of the invention we start with the benefit of hindsight captured in one simple question that is to be answered independently for every single individual who is to be served by the information system: “what will the system do for me?” which is only the prelude to asking “how can I make it do what I want?”
The social implications of these questions are much more significant than may appear at first glance. There is a very good reason that software and system vendors and even many Internet businesses adopt a Business to Business (B-to-B) model and risk their business objectives to the long sales cycles and uncertain outcome of attempting to sell their products to the Fortune 1000 companies. Information systems are fundamentally focused on computers, which are only effective if they are handling abstractions (i.e. running programs).
From the point of view of a programmer, organizations, and in particular large organizations, are information abstractors. From the point of view of information management an organization is an abstraction of information needs for groups of individuals. If you start with the question “can we make a smarter computer?” the resulting product will make more sense to the larger enterprise every time.
On the other hand, the convergence industry, i.e. the industry that is concerned with information management and communication in a world of global commerce, wireless devices and Internet, is learning something about the value of being able to serve an individual, independent of their “current” employers. In this industry a company's net worth can be measured in terms of the number of subscribers that it serves. This value makes it worthwhile to answer a direct question “how can we serve this user?” But the traditional approach to design of information systems is preoccupied with building smarter computers and answers this question indirectly, if at all.
The convergence market requires a strong user centric element. A phenomenon similar to the evolution of long distance service providers and wholesale bandwidth merchants may make the delivery of information services a commodity in the future. If that happens, delivering information services to an individual in the context of both personal and professional requirements will pose an attractive business opportunity and may create a greater demand for true user centric implementations. Such a user centric information system must balance the traditional contention between “individualism” and “collectivism” [7] smoothly and consistently. We will refer to this need as “personalization”.
Retrofitting the Old Approach to the New Problem
A traditional engineering approach for personalization is to start with existing technology centric elements and develop a transformation that maps its attributes into the attributes of a user centric system. This approach is the common characteristic of architectural design methodologies including the recent object oriented approaches that are based on a formal definition of use cases [15].
A difficulty with this traditional approach is that these transformations tend to be non-linear i.e. they do not scale with the number of users or other changes in the scope of users' needs. However, when such changes occur, a non-linear transformation contributes its own artifacts into the solution, which are indistinguishable from the attributes of the problem space. For example it is difficult to ascertain if a certain behavior of the system is the result of implementation considerations or if it was a part of the original use case. Consequently traditional information systems tend to become an obstacle to the growth of the enterprise.
Another difficulty with this traditional approach is that these transformations are unidirectional because they are postulated, not calculated, as a result of a process of synthesis, which flows from requirement to implementation. Consequently a traditional architecture approach to information systems may identify deployment and maintenance as auxiliary processes that take place after the system has been designed, implemented, and validated. This approach is necessitated by the unidirectional nature of the transformation from the problem space (use cases) to the solution space (implementation).
In the end, users of information systems find that using an information service is effectively the same as joining an exclusive information club (a domain). Certain services are exclusively supported within the domain and the domain tends to have a life cycle, or a growth characteristic that is independent of the user.
Looking at the Information System as an Organizational Undertaking
The invention describes a method and an apparatus to serve the user. The method starts with the recognition that an individual user is a member of multiple enterprises. Within each enterprise, the invention attempts to capture a pragmatic specification of the user's information needs.
In a user centric system each enterprise is a forum for collaboration [4]. In other words, the invention assumes that the user's association with each enterprise codifies the user's information needs. This is an important concept that makes it possible to use a distributed computing environment to serve the information needs of the users.
The invention includes the concept that abstracting the users' roles within each enterprise creates an Information Model. The invention provides for continued evolution of this Information Model by making it possible for a user or a group of users to modify its or their behavior (we will refer to this as an “Active Information Model”).
An information system is an organizational commitment and as such the processes governing allocation of resources for its continued operation are a primary concern of the organization. Its specific attributes, such as the technologies that are included or the need for upgrading a certain service or a component become a concern only through such processes, for example if they are discovered to be in conflict with the organization's operational assumptions.
Multiple Perspectives
Furthermore, change is a reality of practice and it is a given that any information model (active or not) is always incomplete. The only reason that we consider any information model to be commercially useful is because it can be continually improved through formal processes [3][8]. If these processes are not supported, the implementation of the information model is faulty.
The apparatus that supports the invention serves two functions. As a component of a user centric system it must facilitate satisfaction of the information exchange agreements between the user and his/her collaborators. As a component of the enterprise's Active Information Model it must serve to contribute to the enterprise decision support processes for allocation of resources to the information system.
Extensive and excellent prior art exists in the area of characterizing an enterprise information system. Principally this work addresses the issues involved in implementing a service oriented distributed system [13], and the mechanisms for presenting system services as commodity items in a distributed environment [10], [12]. In general however, prior art is based on the assumption that the primary force governing an information system is the organization's mission or business objectives.
Early work in this area [6] describes four general perspectives that govern the evolution of an information system. These perspectives were identified as Management, Technology (Application Development[6]), Service, and User. In the development of the invention we found that a user centric system must accommodate additional perspectives that relate to the users' professional considerations, which in certain cases are independent of the business considerations of the enterprise. In an example of a specific embodiment of this invention (discussed in more detail in the “Detailed Discussion”), we choose to use a professional in a regulated industry as the prototypical user in order to extend the traditional model while at the same time maintaining a specific and recognizable relationship with a real world example.
Implementing the Engine
The operation of the Active Agent engine is described in detail in the Detailed Description of the Invention. Here, a few notes are appropriate.
The Active Information Model is a distributed system that:                Describes the information management policies of the enterprise,        Is never totally completed, although to the extent that it is described, it is accurate.        Accurately reflects the organization because it is Active, i.e. it includes components that provide two essential services in the enterprise information system, namely information mapping and workflow.        Is insensitive to the technologies that the organization uses to implement the underlying information system.Interfaces        
Certain unique attributes of the engine that support the active information model of this invention are based on its relationship to the users and the enterprise i.e. its interfaces, rather than its internal implementation. In essence these interfaces characterize the levels of integration, i.e. the way this engine relates to the computer based as well as human based segments of the enterprise information system. The engine is characterized by five interfaces. Four of these interfaces (Provider, Consumer, Configuration and Execute interfaces) are effectively exposed to the enterprise. The fifth interface deals with the way the engine retrieves its programming from the information model.
Workflow and Data Mapping
In this invention the combination of workflow and data mapping serve to make the active Information Model work.
The invention treats an action as an attribute of a role and not a service that is provided by the enterprise system. In a traditional enterprise application, an individual user can invoke an action. This causes the system to perform certain functions, which generally includes access to data sources. Changing system functions generally requires intervention by programmers. The concept of an Active Information Model in a user centric system directly supports situations where a user (or group of users) redefine a particular organizational function. For example, a supervisor may choose to change the way a service request is routed to a particular sub-group of his/her staff because they have had to move to a customer site for the day and are using PDAs instead of workstations for communication.
This local and transient nature of workflow is closely coupled with data mapping and the need for its redefinition to be configurable at the user level. To implement this, the inventors have defined a concept of a Command, for a lower level activity which is similar to system services in a traditional system, and have created a higher level abstraction of Actions as an externally visible attribute of a role that can be invoked by other roles.
It should be noted that Workflow is not defined by the aggregation of the actions but rather by the aggregation of the roles that include those actions. In other words Workflow is a statement of policy and the Active Information Model reflects this policy (moves information according to it) rather than implements it.
Information Mapping
The value of the engine of this invention to the information model of this invention is in the way it maps the information more than in its unique algorithms to move information at high speed. The engine is principally a mechanism for remembering the association of various elements of information in the context of a certain role within the enterprise. When an action is invoked the engine attempts to resolve all of the associations that are related to that action. In the process of resolving those associations various commands are executed and some data is moved.
There are two further concepts that are significant to discuss here, namely the use of reference categories and the use of facades. These concepts are discussed in some detail in the specification but it is worth noting here that they serve to contain the localized changes in the information model, making it possible to construct and maintain the information model incrementally.
Objectives
The methods, apparatus and systems of the invention are designed to meet the needs of professionals who collaborate with associates in multiple enterprises. To test fully the user centric aspects of the invention, it was determined that the above statement should be extended to meet the needs of certain business segments that have additional elements of cost or regulatory requirements. Therefore the design point for an embodiment of the invention was chosen to include additional constraints by using as the prototypical user professionals who work in small to medium size businesses and who are part of a regulated or structured industry such as healthcare, legal or maintenance and repair services. In this regard, the objectives of the method, apparatus and system of the invention include the following metrics:                Information systems and applications must be easy to purchase and provide an immediate return on investment (ROI).        They must integrate easily into the existing environment and be easy to use.        They should be configurable:                    to allow the users to define their own environment relative to multiple business and professional associations.            to allow the businesses to incorporate their own unique business processes. “I want it my way, not the way a programmer thinks I want it” is a phrase heard over and over during market research interviews.            to accommodate improvements in the individual and/or organizations' operational practices.                        They should be compliant with current and emerging communication and reporting standards.        They should be flexible, enabling access to a wide variety of communication devices, databases and data sources and possess the ability to change as personal practice and business processes change.        Information management solutions must be scalable to allow the business to start small, yet maintain the ability to grow as business needs dictate.        Technology must be supported, if not embraced, by information services (IS) professionals (i.e. consultants and systems integrators) to allow professionals to enlist knowledgeable support as the need arises.        Technology must support, not dictate, the business operations and users' needs.        
With these objectives in mind, the result of deploying the Invention is a virtual, interactive, information management system that is not uniquely dependent on any server or any specific apparatus for its operation. The implementation of the system can use a variety of electronic data processing devices to assist the users' interaction with the system and data storage servers and communication links to provide for storage and transmission of persistent information. Examples of suitable electronic data processing devices may include workstations, laptop computers, and hand held data entry and communication devices, and others that may be developed in the future. The choice among these devices is based on the needs of the users of the system and the system itself is not dependent on any apparatus. The primary governing factors in the information system that deploys the Invention are the processes that the user community has adopted, in contrast to a traditional information system that imposes processes that facilitate use of its components.
The concept of “process” as used in the context of The Invention indicates a continuous focus by the participants on achieving a common objective. Specifically, and for the purposes of information management, a process is the formal element for managing the probability of success during the course of an activity.
The active elements of any process in an organization are the individuals who participate in the process. Within the framework of the governing process, these individuals evaluate progress, and redefine and execute the specific actions that result in improving the probability of success. An information system that serves such a process must facilitate this continuous redefinition and execution of these specific tasks. It follows that a critical attribute of the Invention is its ability to represent an existing process in a coherent, active information model whose behavior is continually updated and reconfigured by its users.
A significant function of the invention is the creation and continuous improvement of an information system by the individual or organization that deploys a computer system to serve an enterprise. The Information Model of this invention:                Identifies the individual roles within the organization,        Identifies location and characteristics of sources and destinations of the information elements that are used or created by each role (the relationship of each role to the data),        Specifies the rules of translation between elements of data, from the perspective of each individual role,        Specifies actions that are taken by each role relative to the information (the relationship of roles to one another).        
Among the components of the invention that support these features are:                A persistent record that describes the above information for each role: Configuration        A software program that uses this information to perform the specified actions for each role: the Active Agent Engine        A formalism that provides for translating the needs of the organization into configuration records for each instance of the Engine: Process.        
The invention is a method and system embodied in the apparatus of an Active Agent that facilitates implementation and deployment of adaptable collaborative enterprise-wide information management systems.
It includes a software program that can operate in conjunction with, and independent of other programs within a computer system. This program operates as a system service which means that it may receive its instructions from the users of the information system or from other objects or application programs that are either running on the computer in question or have the ability to communicate with this computer. (software Engine).
This Engine is, and is implemented using, a group of independent, homomorphic components with specific structure and interfacing rules (industry term: Objects). A current embodiment of this invention is exemplified in its prototype implementation within the framework of an Object Model. As the Engine is itself an Object, multiple copies of it may be present within the system.
Using this Engine in a network of computers makes it possible for the organization to create a living definition of an organization's information use and management practices (an Active Information Model). “Active Information Model” implies that this model is defined and modified as needed, and in real time, in order to reflect the organization's structure. It further implies that it is an integral part of the organization's daily operation. “Real time” means that in order to redefine the responsibilities of one component, other components within the system do not have to stop functioning. The primary benefit to the organization is the ability to create an information management system, substantially independent of its specific hardware and software components. Specific advantages of this invention include the elements of the software system as well as the Active Information Model and elements of an information architecture that, once adopted by the organization, makes the overall information system a living and changing component of the enterprise.
Advantages of the Invention over Prior Approaches
The Active Agent Engine is a tool for tailoring enterprise applications to satisfy the users' requirements. It:                Serves as the agent of the user (not as the glue between applications),        Satisfies the user's information needs within the enterprise rather than forcing the user to deal with the information that is created by generic applications,        Defines the enterprise's Information Management practices as an aggregation of the user's information needs.        